package br.com.paradigmas.persistencia.om;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import br.com.paradigmas.utils.BDConstantes;

/**
 * @author Djalma
 */
public class Artista implements Serializable
{
	/*-*-*-* Constante de Serializacao *-*-*-*/
	private static final long serialVersionUID = 1L;
	private static long id = 1010;

	/*-*-*-* Variaveis e Objetos Privados *-*-*-*/
	private long pkArtista;
	private String nome;
	private Date dataNascimento;
	private int status = BDConstantes.STATUS_ATIVO;

	private Pais pais;

	private List<AlbumArtista> albumArtistas;
	
	private List<Artista> artistas;
	private List<Musica> musicas;

	/*-*-*-* Construtores *-*-*-*/
	public Artista() { id++; }
	
	public Artista(long pkArtista, String nome, Date dataNascimento, List<Musica> musicas, int status)
	{
		setPkArtista(pkArtista == 0 ? id++ : pkArtista);
		setNome(nome);
		setDataNascimento(dataNascimento);
		setMusicas(musicas);
		setStatus(status);
	}
	
	/*-*-*-* Metodos Gets e Sets *-*-*-*/
	public long getPkArtista() 							{ return pkArtista; }
	public void setPkArtista(long pkArtista) 			{ this.pkArtista = pkArtista; }

	public String getNome() 							{ return nome; }
	public void setNome(String nome)					{ this.nome = nome; }

	public Date getDataNascimento() 					{ return dataNascimento; }
	public void setDataNascimento(Date dataNascimento) 	{ this.dataNascimento = dataNascimento; }

	public int getStatus() 								{ return status; }
	public void setStatus(int status) 					{ this.status = status; }

	public Pais getPais() 								{ return pais; }
	public void setPais(Pais pais) 						{ this.pais = pais; }

	public List<AlbumArtista> getAlbumArtistas() { if(albumArtistas==null) { albumArtistas = new ArrayList<AlbumArtista>(); } return albumArtistas; }
	public void setAlbumArtistas(List<AlbumArtista> albumArtistas) { this.albumArtistas = albumArtistas; }

	public List<Artista> getArtistas() 					{ return artistas; }
	public void setArtistas(List<Artista> artistas) 	{ this.artistas = artistas; }

	public List<Musica> getMusicas() 					{ return musicas; }
	public void setMusicas(List<Musica> musicas) 		{ this.musicas = musicas; }
}